iT邦幫忙

2022 iThome 鐵人賽

DAY 0
0
自我挑戰組

新手工程師的MCU之旅系列 第 1

新手工程師的MCU之旅 #1 認識中斷

  • 分享至 

  • xImage
  •  

MCU_Interrupt

CPU 在運行的時候都是以線性的方式在進行,也就是一個指令完成後再進行下一個。

若我們需要知道一個外部硬體的準備狀況,便需要進行"詢問"的動作,也就是看指定pin腳的旗標是否成可用。

但若每次都需要耗費一次指令進行詢問,會導致主程序的效率低下,且根據主函式的數量增加,其運行一次迴圈的時間上的控制將變得困難

因此這時候需要 中斷

中斷(interrupt)是指處理器接收到來自硬體或軟體的訊號,提示發生了某個事件,應該被注意,這種情況就稱為中斷 -wiki

因此在使用上 不管是 I/O 還是計時器或是其他事件,大部分會使用中斷進行控制。
尤其是在計時器上面,在1947當中,Timer能夠參照一個穩定的振盪器進行中斷,也就是...有一個穩定的時序來固定的發送訊號當作計時器的中段訊號。

因此,在使用上 中斷 很常被利用來當作

  1. I/O 使用
  2. 計時器使用

而由於運行的時序對CPU來說是不穩定的,因此會將運算的成果存入暫存器做後續的資料處理

Sample Code

void SFR_INIT(void) {
    //能夠做一些事情在這裡
  
}

:::warning
:exclamation:注意運行的時候最好不要將過度複雜的指令在中段運行
中斷只會運行1 clock cycle 的指令
:::

:::info
這邊基本上只對中斷做簡單的說明與應用,後續會對其內容與應用做更多說明。 :100:
:::

這邊是我這篇的Hackmd XD 看這邊的話會比較清楚喔
https://hackmd.io/@huyuhua/MCU_Interrupt


系列文
新手工程師的MCU之旅1
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言